package cn.wzy.onlyoffice.config;

import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.http.HttpProtocol;
import com.qcloud.cos.region.Region;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * 在主启动类启动时初始化配置文件中的内容
 * <p>
 * 创建时间: 2022-03-24 14:46
 *
 * @author v_fuxshen
 * @version v1.0.0
 * @since v1.0.0
 */
@Component
public class CosConfig implements InitializingBean {
 
	@Value("${tencent.cos.secretid}")
	String secretId;
	@Value("${tencent.cos.secretkey}")
	String secretKey;
	@Value("${tencent.cos.appid}")
	String appid;
	@Value("${tencent.cos.regionid}")
	String regionId;
	public static String Tencent_secretId;
	public static String Tencent_secretKey;
	public static String Tencent_appid;
	public static String Tencent_regionId;
	@Override
	public void afterPropertiesSet() {
		Tencent_secretId = secretId;
		Tencent_secretKey = secretKey;
		Tencent_appid=appid;
		Tencent_regionId=regionId;
	}
	public static COSClient getCosClient() {
		// 1 初始化用户身份信息（secretId, secretKey）。
		// SECRETID和SECRETKEY请登录访问管理控制台 https://console.cloud.tencent.com/cam/capi 进行查看和管理
		COSCredentials cred = new BasicCOSCredentials(CosConfig.Tencent_secretId, CosConfig.Tencent_secretKey); // 不传APPID也可以，APPID和ACCESSKE已经关联过
		// 2 设置 bucket 的地域, COS 地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
		// clientConfig 中包含了设置 region, https(默认 http), 超时, 代理等 set 方法, 使用可参见源码或者常见问题 Java SDK 部分。
		//REGIONID地域
		ClientConfig clientConfig = new ClientConfig(new Region(CosConfig.Tencent_regionId));
		// 这里建议设置使用 https 协议
		// 从 5.6.54 版本开始，默认使用了 https
		clientConfig.setHttpProtocol(HttpProtocol.https);
		//生成cos客户端
		return new COSClient(cred, clientConfig);
	}
}